package ui;

import java.util.ArrayList;
import java.util.List;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.layout.HorizontalLayout;
import org.uqbar.arena.layout.VerticalLayout;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Control;
import org.uqbar.arena.widgets.Label;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.widgets.TextBox;
import org.uqbar.arena.widgets.TextFilter;
import org.uqbar.arena.widgets.TextInputEvent;
import org.uqbar.arena.widgets.tables.Column;
import org.uqbar.arena.widgets.tables.Table;
import org.uqbar.arena.windows.Dialog;
import org.uqbar.arena.windows.WindowOwner;

import ruleta.Apuesta;
import ruleta.MesaDeJuego;




import com.uqbar.commons.StringUtils;
import com.uqbar.commons.collections.Transformer;

import dominio.Jugador;
import dominio.Robot;

public class JugadorWindow extends Dialog<Jugador> {
	private static final long serialVersionUID = 1L;

	public JugadorWindow(WindowOwner owner, Jugador jugador) {
		super(owner, jugador);
	}

	
	protected void createMainTemplate(Panel mainPanel){
		this.setTitle("Robots");
		super.createMainTemplate(mainPanel);
	}
	
	
	@Override
	protected void executeTask() {
		
	}

	@Override
	protected void addActions(Panel actionsPanel) {
		Panel panel = actionsPanel.setLayout(new VerticalLayout());
		
		Button unirse = new Button(panel);
		unirse.setCaption("Reparar");
		//unirse.onClick(new MessageSend(this, "reparar"));
		
		
	}

	@Override
	protected void createFormPanel(Panel mainPanel) {
		Panel panel = new Panel(mainPanel);
		panel.setLayout(new VerticalLayout());
		
		new Label(panel).bindValueToProperty(Jugador.NOMBRE);
		this.agregarRobots();
		this.createOtrosRobotsGrill(panel);
		this.createJugadorRobotGrill(panel);
		
	
		
	}


	private void agregarRobots() {
		Robot robot = new Robot("Robocop", 19, 50);
		Robot robot2 = new Robot("Robosop", 156, 50);
		Robot robot3 = new Robot("Robotop", 12, 50);
		
		
		Robot robot4 = new Robot("Robochop", 16, 50);
		Robot robot5 = new Robot("Robopop", 11, 50);
		robot4.setNombreDuenio("Victoria Bandi");
		robot5.setNombreDuenio("Doña Florinda");
		
		List<Robot> misRobots = new ArrayList<Robot>();
		misRobots.add(robot);
		misRobots.add(robot2);
		misRobots.add(robot3);
		
		List<Robot> otrosRobots = new ArrayList<Robot>();
		otrosRobots.add(robot4);
		otrosRobots.add(robot5);
		
		this.getModel().setRobots(misRobots);
		this.getModel().setOtrosRobots(otrosRobots);
		
		
		
	}


	private void createOtrosRobotsGrill(Panel panel) {
		new Label(panel).setText("Mis Robots");
		Table<Robot> table = new Table<Robot>(panel, Robot.class);
		table.bindContentsToProperty(Jugador.ROBOTS);
		
		Column<Robot> nombreColumn = new Column<Robot>(table);
		nombreColumn.setTitle("Nombre");
		nombreColumn.setFixedSize(100);
		nombreColumn.bindContentsToProperty(Robot.NOMBRE);

		Column<Robot> poderColumn = new Column<Robot>(table);
		poderColumn.setTitle("Poder");
		poderColumn.setFixedSize(100);
		poderColumn.bindContentsToProperty(Robot.PODERTOTAL);

		Column<Robot> porcentajeColumn = new Column<Robot>(table);
		porcentajeColumn.setTitle("Porcentaje");
		porcentajeColumn.setFixedSize(100);
		porcentajeColumn.bindContentsToProperty(Robot.PORCENTAJE);
		
		table.setWidth(600);
		table.setHeigth(300);
		
	}


	private void createJugadorRobotGrill(Panel panel) {
		new Label(panel).setText("Otros Robots");
		Table<Robot> table = new Table<Robot>(panel, Robot.class);
		table.bindContentsToProperty(Jugador.OTROSROBOTS);
		
		Column<Robot> nombreColumn = new Column<Robot>(table);
		nombreColumn.setTitle("Nombre");
		nombreColumn.setFixedSize(100);
		nombreColumn.bindContentsToProperty(Robot.NOMBRE);
		
		Column<Robot> dueñoColumn = new Column<Robot>(table);
		dueñoColumn.setTitle("Dueño");
		dueñoColumn.setFixedSize(100);
		dueñoColumn.bindContentsToProperty(Robot.NOMBREDUENIO);

		Column<Robot> poderColumn = new Column<Robot>(table);
		poderColumn.setTitle("Poder");
		poderColumn.setFixedSize(100);
		poderColumn.bindContentsToProperty(Robot.PODERTOTAL);

		Column<Robot> porcentajeColumn = new Column<Robot>(table);
		porcentajeColumn.setTitle("Porcentaje");
		porcentajeColumn.setFixedSize(100);
		porcentajeColumn.bindContentsToProperty(Robot.PORCENTAJE);
		
		table.setWidth(600);
		table.setHeigth(300);
		
	}
	

}
